<!DOCTYPE html>
<html>

<head>
    <!-- 页面meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>规格管理</title>
    <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
    <link rel="stylesheet" href="/plugins/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="/plugins/adminLTE/css/AdminLTE.css">
    <link rel="stylesheet" href="/plugins/adminLTE/css/skins/_all-skins.min.css">
    <link rel="stylesheet" href="/css/style.css">
    <script src="/plugins/jQuery/jquery-2.2.3.min.js"></script>
    <script src="/plugins/bootstrap/js/bootstrap.min.js"></script>

</head>

<body class="hold-transition skin-red sidebar-mini">
<!-- .box-body -->
<div class="box-header with-border">
    <h3 class="box-title">规格管理</h3>
</div>
<div class="box-body">
    <!-- 数据表格 -->
    <div class="table-box">

        <!--工具栏-->
        <div class="pull-left">
            <div class="form-group form-inline">
                <div class="btn-group">
                    <button type="button" class="btn btn-default" title="新建" data-toggle="modal"
                            data-target="#editModal"><i class="fa fa-file-o"></i> 新建
                    </button>
                    <button type="button" onclick="deleteallTbSpecification()" class="btn btn-default" title="删除"><i
                            class="fa fa-trash-o"></i> 批量删除
                    </button>

                    <button type="button" class="btn btn-default" title="刷新" onclick="window.location.reload();"><i
                            class="fa fa-refresh"></i> 刷新
                    </button>
                </div>
            </div>
        </div>
        <div class="box-tools pull-right">
            <div class="has-feedback">
                规格名称：<input id="byname">
                <button class="btn btn-default" onclick="showbyname()">查询</button>
            </div>
        </div>
        <!--根据规格名称查询数据(可以模糊查询)-->
        <script type="text/javascript">
            function showbyname() {
                getall()
            }
        </script>
        <!--工具栏/-->
        <!--数据列表-->
        <table id="dataList" class="table table-bordered table-striped table-hover dataTable">
            <thead>
            <tr>
                <th class="" style="padding-right:0px">
                    <input id="selall" onclick="reversal()" type="checkbox" class="icheckbox_square-blue">
                </th>
                <th class="sorting_asc">规格ID</th>
                <th class="sorting">规格名称</th>
                <th class="text-center">操作</th>
            </tr>
            </thead>
            <!--复选框反转-->
            <script type="text/javascript">
                function reversal() {
                    $("[name=checkbox]").prop("checked", $("#selall").prop("checked"))
                }
            </script>
            <tbody id="specifications">
            </tbody>
        </table>
        <!--数据列表/-->
        <!--获取规格表数据并且写入-->
        <script type="text/javascript">
            //加载规格表内容
            $.ajax({
                url: "/TbSpecificationOption/TbSpecificationshowall",
                data: {},
                type: "post",
                dataType: "json",
                async: false,
                success: function (pm) {
                    var TbSpecifications = pm.data.rows;
                    var specificationlist = '';
                    for (let i = 0; i < TbSpecifications.length; i++) {
                        specificationlist += '<tr>'
                        specificationlist += '<td><input type="checkbox" name="checkbox" value="' + TbSpecifications[i].id + '"></td>'
                        specificationlist += '<td>' + TbSpecifications[i].id + '</td>'
                        specificationlist += '<td>' + TbSpecifications[i].specName + '</td>'
                        specificationlist += '<td className="text-center">'
                        specificationlist += '<button type="button" className="btn bg-olive btn-xs" data-toggle="modal"'
                        specificationlist += 'data-target="#updateeditModal" onclick="echo(' + TbSpecifications[i].id + ')">修改'
                        specificationlist += '</button> '
                        specificationlist += '<button type="button" onclick="deleteTbSpecification(' + TbSpecifications[i].id + ')">删除</button>'
                        specificationlist += '</td>'
                        specificationlist += '</tr>'
                    }
                    specificationlist += '<tr><td colspan="5">'
                    specificationlist += '<input type="button" value="首页" onclick="skip(0)"> '
                    specificationlist += '<input type="button" value="上一页" onclick="skip(1)"> '
                    specificationlist += '<span id="pageNum">' + pm.data.pageNum + '</span> / <span id="pages">' + pm.data.pages
                    specificationlist += '</span> <input type="button" value="下一页" onclick="skip(2)"> '
                    specificationlist += '<input type="button" value="末页" onclick="skip(3)"> '
                    specificationlist += '</td></tr>'
                    $("#specifications").html(specificationlist);
                },
                error: function () {
                    alert("系统异常")
                }
            })

            //换页逻辑
            function skip(pm) {
                let pageNum = $("#pageNum").text();
                let pages = $("#pages").text();
                if (pm == 0) {
                    if (pageNum == 1) {
                        alert("已是首页")
                    } else {
                        $("#pageNum").text(1)
                        getall()
                    }
                } else if (pm == 1) {
                    if (pageNum == 1) {
                        alert("已是第一页")
                    } else {
                        $("#pageNum").text(pageNum - 1)
                        getall()
                    }
                } else if (pm == 2) {
                    if (pageNum == pages) {
                        alert("已是最后一页")
                    } else {
                        $("#pageNum").text(parseInt(pageNum) + 1)
                        getall()
                    }
                } else if (pm == 3) {
                    if (pageNum == pages) {
                        alert("已是末页")
                    } else {
                        $("#pageNum").text(pages)
                        getall()
                    }
                }
            }

            //加载换页后规格内容
            function getall() {
                //加载规格表内容
                let pageNum = $("#pageNum").text();
                let pages = $("#pages").text();
                let specName = $("#byname").val();
                $.ajax({
                    url: "/TbSpecificationOption/TbSpecificationshowall",
                    data: {pageNum: pageNum, pages: pages, specName: specName},
                    type: "post",
                    dataType: "json",
                    async: false,
                    success: function (pm) {
                        var TbSpecifications = pm.data.rows;
                        var specificationlist = '';
                        for (let i = 0; i < TbSpecifications.length; i++) {
                            specificationlist += '<tr>'
                            specificationlist += '<td><input type="checkbox" name="checkbox" value="' + TbSpecifications[i].id + '"></td>'
                            specificationlist += '<td>' + TbSpecifications[i].id + '</td>'
                            specificationlist += '<td>' + TbSpecifications[i].specName + '</td>'
                            specificationlist += '<td className="text-center">'
                            specificationlist += '<button type="button" className="btn bg-olive btn-xs" data-toggle="modal"'
                            specificationlist += 'data-target="#updateeditModal" onclick="echo(' + TbSpecifications[i].id + ')">修改'
                            specificationlist += '</button> '
                            specificationlist += ' <button type="button" onclick="deleteTbSpecification(' + TbSpecifications[i].id + ')">删除</button>'
                            specificationlist += '</td>'
                            specificationlist += '</tr>'
                        }
                        specificationlist += '<tr><td colspan="5">'
                        specificationlist += '<input type="button" value="首页" onclick="skip(0)"> '
                        specificationlist += '<input type="button" value="上一页" onclick="skip(1)"> '
                        specificationlist += '<span id="pageNum">' + pm.data.pageNum + '</span> / <span id="pages">' + pm.data.pages
                        specificationlist += '</span> <input type="button" value="下一页" onclick="skip(2)">'
                        specificationlist += '<input type="button" value="末页" onclick="skip(3)"> '
                        specificationlist += '</td></tr>'
                        $("#specifications").html(specificationlist);
                    },
                    error: function () {
                        alert("系统异常")
                    }
                })
            }
        </script>
    </div>
    <!-- 数据表格 /-->
</div>
<!-- /.box-body -->


<!-- 编辑窗口 添加-->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h3 id="myModalLabel">规格编辑</h3>
            </div>
            <div class="modal-body">
                <table class="table table-bordered table-striped" width="800px">
                    <tr>
                        <td>规格名称</td>
                        <td><input class="form-control" id="specName" placeholder="规格名称"></td>
                    </tr>
                </table>
                <!-- 规格选项 -->
                <div class="btn-group">
                    <button type="button" onclick="addhtml()" class="btn btn-default" title="新建"><i
                            class="fa fa-file-o"></i> 新增规格选项
                    </button>
                </div>

                <table class="table table-bordered table-striped table-hover dataTable">
                    <thead>
                    <tr>
                        <th class="sorting">规格选项</th>
                        <th class="sorting">排序</th>
                        <th class="sorting">操作</th>
                    </thead>
                    <tbody id="htmlelement">
                    <tr>
                        <td>
                            <input class="form-control" placeholder="规格选项">
                        </td>
                        <td>
                            <input class="form-control" placeholder="排序">
                        </td>
                        <td>
                            <button type="button" class="btn btn-default" onclick="deletehtml(this)" title="删除"><i
                                    class="fa fa-trash-o"></i> 删除
                            </button>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <input class="form-control" placeholder="规格选项">
                        </td>
                        <td>
                            <input class="form-control" placeholder="排序">
                        </td>
                        <td>
                            <button type="button" class="btn btn-default" onclick="deletehtml(this)" title="删除"><i
                                    class="fa fa-trash-o"></i> 删除
                            </button>
                        </td>
                    </tr>
                    </tbody>
                </table>
            </div>

            <script type="text/javascript">

                //添加html元素
                function addhtml() {
                    var htmls = '<tr><td><input class="form-control" placeholder="规格选项"></td>' +
                        '<td><input class="form-control" placeholder="排序"></td>' +
                        '<td><button type="button" class="btn btn-default" onclick="deletehtml(this)" title="删除"><i class="fa fa-trash-o"></i> 删除</button></td></tr>';
                    $("#htmlelement").append(htmls)
                }

                <!--删除html元素-->
                function deletehtml(pm) {
                    if ($("#htmlelement").find('tr').length == 1) {
                        alert("至少要留一个规格选项")
                        return
                    }
                    var parentNode = pm.parentNode.parentNode;
                    $("#htmlelement")[0].removeChild(parentNode);
                }

                //-------------
                //添加html元素
                function addhtmls() {
                    var htmls = '<tr><td><input class="form-control" placeholder="规格选项"></td>' +
                        '<td><input class="form-control" placeholder="排序"></td>' +
                        '<td><button type="button" class="btn btn-default" onclick="deletehtmls(this)" title="删除"><i class="fa fa-trash-o"></i> 删除</button></td></tr>';
                    $("#tbodys").append(htmls)
                }

                <!--删除html元素-->
                function deletehtmls(pm) {
                    if ($("#tbodys").find('tr').length == 1) {
                        alert("至少要留一个规格选项")
                        return
                    }
                    var parentNode = pm.parentNode.parentNode;
                    $("#tbodys")[0].removeChild(parentNode);
                }
            </script>
            <div class="modal-footer">
                <button class="btn btn-success" data-dismiss="modal" onclick="addTbSpecification()" aria-hidden="true">
                    保存
                </button>
                <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">关闭</button>
            </div>
        </div>
    </div>
</div>

<!-- 编辑窗口 修改-->
<div class="modal fade" id="updateeditModal" tabindex="-1" role="dialog" aria-labelledby="updatemyModalLabel"
     aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h3 id="updatemyModalLabel">规格编辑</h3>
            </div>
            <div class="modal-body">
                <table class="table table-bordered table-striped" width="800px">
                    <tr>
                        <td>规格名称</td>
                        <td><input class="form-control" placeholder="规格名称" id="specNamebyid"></td>
                    </tr>
                </table>
                <!-- 规格选项 -->
                <div class="btn-group">
                    <button type="button" onclick="addhtmls()" class="btn btn-default" title="新建"><i
                            class="fa fa-file-o"></i> 新增规格选项
                    </button>
                </div>
                <table class="table table-bordered table-striped table-hover dataTable">
                    <thead>
                    <tr>
                        <th class="sorting">规格选项</th>
                        <th class="sorting">排序</th>
                        <th class="sorting">操作</th>
                    </thead>
                    <tbody id="tbodys">
                    </tbody>
                </table>
            </div>
            <div class="modal-footer">
                <button class="btn btn-success" onclick="updateTbSpecification()" data-dismiss="modal"
                        aria-hidden="true">保存
                </button>
                <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">关闭</button>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">

    //添加规格数据
    function addTbSpecification() {
        var specName = $("#specName").val();
        if ('' == specName || specName == null) {
            alert("规格名称不能为空")
            return
        }
        var TbSpecificationOption = [];
        $("#htmlelement").find('tr').each(function (i, v) {
            var optionName = $($(v).find('td')[0]).find('input').val();
            var orders = $($(v).find('td')[1]).find('input').val();
            TbSpecificationOption.push({optionName: optionName, orders: orders})
        })
        var s = JSON.stringify(TbSpecificationOption);
        $.ajax({
            url: "/TbSpecificationOption/addTbSpecification",
            data: {specName: specName, s: s},
            type: "post",
            dataType: "json",
            async: false,
            success: function (pm) {
                alert(pm.message)
                getall()
            },
            error: function () {
                alert("系统异常")
            }
        })
    }

    <!--规格数据回显-->
    function echo(id) {
        $.ajax({
            url: "/TbSpecificationOption/showecho",
            data: {id: id},
            type: "post",
            dataType: "json",
            async: false,
            success: function (pm) {
                $("#specNamebyid").val(pm.data.specName)
                var s = ''
                for (let i = 0; i < pm.data.rows.length; i++) {
                    s += '<tr><input id="id" class="form-control" type="hidden" placeholder="规格选项" value="' + pm.data.id + '"><td>' +
                        '<input class="form-control" placeholder="规格选项" value="' + pm.data.rows[i].optionName + '"></td>' +
                        '<td><input class="form-control" placeholder="排序" value="' + pm.data.rows[i].orders + '"></td>' +
                        '<td><button type="button" onclick="deletehtmls(this)" class="btn btn-default" onclick="deletehtml(this)" title="删除">' +
                        '<i class="fa fa-trash-o"></i> 删除</button></td></tr>'
                }
                $("#tbodys").html(s)
            },
            error: function () {
                alert("系统异常")
            }
        })
    }

    <!--修改规格数据-->
    function updateTbSpecification() {
        var specName = $("#specNamebyid").val();
        if ('' == specName || specName == null) {
            alert("规格名称不能为空")
            return
        }
        var id = $("#id").val();
        var TbSpecificationOption = [];
        $("#tbodys").find('tr').each(function (i, v) {
            var optionName = $($(v).find('td')[0]).find('input').val();
            var orders = $($(v).find('td')[1]).find('input').val();
            TbSpecificationOption.push({optionName: optionName, orders: orders})
        })
        var s = JSON.stringify(TbSpecificationOption);
        $.ajax({
            url: "/TbSpecificationOption/updateTbSpecification",
            data: {id: id, specName: specName, s: s},
            type: "post",
            dataType: "json",
            async: false,
            success: function (pm) {
                alert(pm.message)
                getall()
            },
            error: function () {
                alert("系统异常")
            }
        })
    }

    //数据删除
    function deleteTbSpecification(id) {
        if (confirm("你确定要删除吗?")) {
            $.ajax({
                url: "/TbSpecificationOption/deleteTbSpecification",
                data: {id: id},
                type: "post",
                dataType: "json",
                async: false,
                success: function (pm) {
                    alert(pm.message)
                    getall()
                },
                error: function () {
                    alert("系统异常")
                }
            })
        }
    }

    //多条数据删除
    function deleteallTbSpecification() {
        var ids = []
        $("[name=checkbox]").each(function (i, e) {
            if ($(e).prop("checked")) {
                ids.push($(e).val())
            }
        })
        if (ids == '') {
            alert("请先选择要删除的品牌")
            return
        }
        if (confirm("你确定要删除吗?")) {
            $.ajax({
                url: "/TbSpecificationOption/deleteallTbSpecification",
                data: {ids: ids},
                type: "post",
                dataType: "json",
                async: false,
                success: function (pm) {
                    alert(pm.message)
                    getall()
                },
                error: function () {
                    alert("系统异常")
                }
            })
        }
    }
</script>
</body>
</html>